home *** CD-ROM | disk | FTP | other *** search
/ Hornet Underground 1 / Hornet Underground.iso / demonews / demonews.082 < prev    next >
Text File  |  1996-05-07  |  80KB  |  1,532 lines

  1.  ______/\___________________________      __  ________________ ___  /\_______
  2.  \____   \  ________ _   _ ______   \    /  \|  \  ________   |   \/  ______/
  3.  /   |    \  _)   \   \_/   \   |    \  /    \   \  _)   \    |    \______  \
  4. /    |     \       \   |     \  |     \/          \       \  /~\    \    /   \
  5. \_____     /_______/___|     /________/\____\_____/_______/_________/________/
  6.  ===\_____/============|____/========================================[+tZ^]==
  7.  
  8.                               DemoNews Issue #82
  9.                      February 5, 1995 - February 11, 1995
  10.  
  11.                                  ------------
  12.  
  13.   DemoNews is a weekly publication for the demo scene. It is produced at the
  14.    Internet FTP site  ftp.eng.ufl.edu (HORNET).  This newsletter focuses on
  15.   many aspects of demos and demo making. Everyone is welcomed to contribute
  16.                     articles, rumors, and advertisements.
  17.  
  18.     Information about HORNET and DemoNews can be found under /demos/README
  19.  
  20.                         -Christopher G. Mann (Snowman)-
  21.                             r3cgm@dax.cc.uakron.edu
  22.  
  23. Start.of.DemoNews.082,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
  24.  
  25. SIZE:  80,185  SUBSCRIBERS:   Last week: 1241   This week: 1252   Change: +11
  26.  
  27. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  28.  
  29.              SECTIONS          ARTICLES
  30.              ----------------  -----------------------------------
  31.              HORNET News       Setag and Notron (A New Format)
  32.              New Uploads       Files recieved at HORNET
  33.              NAID              NAID Frequently Asked Questions
  34.              Editorial         Right Brain Left Out
  35.              Music             Interview with Maelcum/KFMF
  36.              Code              Optimizing Vector Transforms. on P5
  37.              Denthor's High    The Perfect Body
  38.                School Essays
  39.              Back Issues       How to Get 'em, Descriptions
  40.              Advertisements    Mind Side Out
  41.                                Help Me!
  42.              Closing Comments  DemoNews Top 10 LIst
  43.  
  44. ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
  45.  
  46.  <<HORNET News>>
  47.  
  48. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  49.  
  50. _____A New Format
  51.  
  52.  Notron : Good evening, this is Notron...
  53.  Setag  : ...and I'm Setag...
  54.  N+S    : And THIS, is the HORNET News.
  55.  Setag  : Our top story tonight is The Party 1994!  Fresh from dopey Denmark,
  56.           this party promises to rock the demo scene off its butt.  Its
  57.           scheduled to begin in late December, so get your tickets now!
  58.  Notron : Setag, that party is over a month old.
  59.  Setag  : Crap!  Well, I don't have direct 'net access, so how am I supposed
  60.           to keep up with stuff like 'dat?
  61.  Notron : By reading DemoNews each and every week of course.  For information
  62.           on how to subscribe, be sure to read the README file under /demos.
  63.  Setag  : What a shameless plug.  Why don't you just give them a 1-800 number
  64.           and a free trial issue if they subscribe in the next 24 hours?!
  65.  Notron : Why don't YOU just go back to Composer 669 and crank out a couple
  66.           more 185bpm tunes?
  67.  Setag  : And what would that accomplish?  In our already decadant and
  68.           immobilized society, two more rapid-paced tracks won't make much of
  69.           an impact.  Governmental hypochondria and continued debasement of
  70.           the moral foundations laid down by previous generations only
  71.           propagte the further disintegration of humanity as a whole.
  72.  Notron : I guess you're right Setag, I never thought about it that way
  73.           before.
  74.  Setag  : Plus, FastTracker 2 rulez!
  75.  Notron : Did you hear about Triton's new demo "Axis" due to be released this
  76.           March?
  77.  Setag  : No.
  78.  Notron : Well, neither did I, so I guess we'll have to move on to something
  79.           else.  With us tonight is GraveDigger, our roving rumor collector.
  80.  GraveD : Hello everyone!
  81.  Notron : What juicy information do you have for us this week Gravie?
  82.  GraveD : Don't call me Gravie.  Its GraveDigger.
  83.  Notron : Sorry, my mistake.
  84.  GraveD : Well folks, we have four tidbits fresh from the grapevine (i.e.
  85.           IRC).  The first is that Quarex has been averaging 4 glasses of
  86.           milk per day since age 4.
  87.  Setag  : You're kidding!?  4 glasses!  But what does that have to do with
  88.           the demo scene?
  89.  GraveD : Well, nothing really, but I thought it was interesting.  Anyway,
  90.           our second rumor is that Necros won't be attending the NAID demo
  91.           party this April.
  92.  Notron : No way!  NAID is supposed to be the biggest thing to hit North
  93.           America since the atomic bomb in World War ][.  Why isn't he
  94.           coming?
  95.  GraveD : What do I look like, his mom?  I just get the rumors, I don't
  96.           research them.  Our third rumor is that Musicman has left epinicon.
  97.  Setag  : Who's Musicman?
  98.  GraveD : Never mind.  The last rumor I have for you is that Zer0 wastes too
  99.           much time with MUD's.
  100.  Setag  : MUDs are the tool of the devil.
  101.  Notron : Yes Setag, I agree.  Back in high school I did some research on
  102.           these so-called "Multi-User Dungeons" and found out that they are
  103.           just a front for drug dealers and gun runners.
  104.  Setag  : ...and they erode the fundaments of civilization.
  105.  Notron : But heck, they sure are FUN, so what's the harm?
  106.  Setag  : GraveD, how reliable are all of these rumors?
  107.  GraveD : Hey, I just tell 'em.  I don't check for accuracy.
  108.  Setag  : But what if you're wrong.  Won't Snowman get flamed?
  109.  GraveD : Oh, who gives a crap about Snowman.
  110. *Snowman* Ahem!
  111.  GraveD : Er... Hello there Snowman.  How's it going?
  112. *Snowman* All aspects of my body and mind are functioning within tolerable
  113.           limits, so I conjecture that one could say "I am fine".
  114.  Setag  : Hey Snowy, lighten up a bit, this is supposed to be a funny
  115.           article.
  116. *Snowman* Something has gone drastically awry.  The three of you were
  117.           supposed to report interesting and informative information to
  118.           the demo community.  Instead I find rumors and nonsensical
  119.           comments.  Where is Ryan Cramer anyway?
  120.  RCramer: Right here man.  School has been eating up most of my time lately
  121.           so I won't be able to contribute as much to DemoNews for awhile.
  122. *Snowman* This is unfortunate.  How do you suggest we compensate for lack of
  123.           material in your absense?
  124.  RCramer: Well, what about Denthor?  He always seems to contribute something
  125.           interesting.
  126.  Denthor: Hello Hello Hello!  Can anyone see me?  I'm here!  Hello?
  127. *Snowman* Greetings Mr. Smith.  Are you aware that I had to completely
  128.           reformat this week's issue of DemoNews to accomodate your essay?
  129.  Denthor: Gosh, I'm sorry.  Won't happen again.  Nope, won't happen again. :)
  130.           So did you like it?  Huh?  Huh?  Did ya?
  131. *Snowman* Actually I have not had time to read it yet.  I've been busy
  132.           editing articles in the "Code" section (where your articles are
  133.           SUPPOSED to go).  Do you notice that Tom and Jason (Dee-Cug) are
  134.           writing articles that actually deal with coding-related topics?
  135.  Denthor: Well, if you don't like my stuff, then mabey you should find
  136.           someone else!
  137.  Dee-Cug: Hey you two, cut it out!  I think that bloody tutorial converting
  138.           is making you two blokes a bit testy.  Its not bloody Denthor's
  139.           fault if he can't bloody contribute something code-related each
  140.           bloody week.  Snowman, Denthor is bloody the 'thing', and you
  141.           should be happy to bloody know him at all.
  142. *Snowman* All right.  Denthor, I apologize.
  143.  Denthor: Hey, no problem.  :)
  144.  Setag  : Snowman, why do you get those '*' thingies around your name and all
  145.           we get is a freaking colon?
  146.  GraveD : That's what I want to know!
  147. *Snowman* Excuse me?  Who is writing this article?  I did not have to include
  148.           you two at all.  I just thought that this format for presenting the
  149.           weekly HORNET news would be more interesting than previous weeks'
  150.           format.
  151.  Notron : But this format takes up a lot more room...
  152.  GraveD : ...and most of the readers don't really care anyway...
  153.  Denthor: ...and I want those '*' thingies on my name too!
  154. *Snowman* Well, we will try this format for an issue or two.  If the readers
  155.           do not like it, we will discontinue it.  If however, the readers
  156.           give positive feedback, we will make this news a regular feature
  157.           of DemoNews.  Agreed?
  158.  ALL    : Agreed.
  159. *Snowman* In that case, we had better wrap this thing up.  Notron and Setag?
  160.  Notron : This is Notron...
  161.  Setag  : ...and I'm Setag...
  162.  N+S    : And THIS has been the HORNET News.
  163.  Dee-Cug: BTW Snowman, check the bloody spelling next time.  There must have
  164.           been 10 bloody errors.
  165. *Snowman* Whoops!  Will do Jason.
  166.  
  167. ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
  168.  
  169.  <<New Uploads>>
  170.  
  171. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  172.    NOTE: All locations start with /demos and then their respective sub-
  173.          directory.  Please note however that the actual base directories
  174.          (like /pub/msdos/demos) may differ from mirror to mirror.
  175.  
  176. Location          Filename.Ext  Size  Description
  177. ----------------  ------------  ----  ----------------------------------------
  178.  
  179.                                   /demos
  180.  
  181. /alpha/NEW        amb_lego.zip   143  Amable presents LEGO (386,GUS)
  182.                   classika.zip   601  Classika by Renegade (386,GUS)
  183.                   hobtro  .zip     9  18th Birthday intro for Hobbes
  184.                   nooon_no.zip  1339  NO, the official release demo from TP94
  185.                   sci     .zip   177  Smash the Control Images by Jourgensen
  186.                   stargate.arj    11  Stargate BBstro done by n-Factor
  187. /parties          g-proba2.zip    58  General Probe Invitation Intro
  188.                   naidinv2.zip   206  NAID invitation intro by Night Vision
  189. /diskmags         dask04  .zip   181  DaskMig Issue IV (TP94 report)
  190.  
  191.                                    /music
  192.  
  193. /disks            reflctns.zip   851  Reflections, the Christmas Musicdisk
  194.                   sr-feb95.zip   572  February Collection/Surrounders(MTM,MOD)
  195. /programs/frontend dmpc260.zip   105  DMP Companion 2.60 Front End
  196. /programs/players iplay121.zip   139  Inertia Player v1.21 (ASM94 CD version)
  197.                   sonix07b.zip    34  SONIX v0.7b GUS/SB MOD Player
  198. /songs/midi       sewnui  .zip     8  Silly Girl by Priscilla Chan
  199. /songs/mod        mntl-sez.zip    41  Mental Seizures by Spam
  200. /songs/s3m        batchman.arj   604  Upped by Batchman (in 3 parts)
  201.                   b13-0001.zip   124  Electronic LSD by Lankmar
  202.                   defi-agc.zip   226  Against the Clock by Blackwolf/Defiance
  203.                   defi-top.zip   136  Top of the Mountain by Blackwolf/Def.
  204.                   k-higher.zip   297  Take Me Higher by Basehead of KFMF
  205.                   kradkrad.arj   148  In the Study by Hector
  206.                   lemming!.zip    95  Little Lemming by The Avatar
  207.                   lil'funk.zip   346  Little Funk Machine by Vinyl/Mindprobe
  208.                   new_age .zip    65  New Age by Mr. Fix It (Michael Gaare)
  209.                   nightmre.zip   134  Nightmare by Corsaire/HS
  210.                   sky_blus.zip   344  Blues Train by Skyjump Team
  211.                   sky_jngb.zip   922  Jungle Baby Love by Skyjump Team
  212.                   smeg_mnd.zip   679  Mindstream by Smeghead/TF
  213.                   tearsvic.zip   217  Tears of Victory by Populus/HS
  214.                   thestudy.arj    96  In The Study by Digital Music Kings
  215.                   tuntemat.zip   144  Tune from 'Unknown' demo by Vinly/MP
  216. /songs/special    perfect .zip   336  PTM Module by Vic/Acme - Perfect Reason
  217.                   right   .zip   290  PTM Module by Vic/Acme from TP94
  218. /songs/xm         6daysrmx.zip   174  Six Days (Ravehard-Rmx) by Nomad/SXS
  219.                   c_pak00 .zip   109  ClaimPak 00 - 3 .XM modules
  220.  
  221.                                   /graphics
  222.  
  223. /pictures         wntd_ray.lha   202  Wanted brings you 2 cool ray-traced
  224.  
  225. ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
  226.  
  227.  <<NAID>>
  228.  
  229. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  230.  
  231. _____NAID Frequently Asked Questions v1.0
  232.  
  233. written by Veritech Knight (William Le)  (25th of January,1995)
  234.  
  235.  To start this off, a little description of the town of Montreal, and
  236.  Longueuil (where the party is at). It isn't exactly a FAQ, but I've had
  237.  some mail that made me believe that some people don't know where Canada is,
  238.  let alone the city of Montreal. Canada is not a state, it's that huge mass
  239.  of land that's north of the USA. Montreal is an island city in the province
  240.  (roughly the equivalent of a state) of Quebec, surrounded by the
  241.  St-lawrence river, and a few urban towns (including Longueuil), with a
  242.  total population of around 3 million +.
  243.  
  244.  The State just south of the province of Quebec is Vermont. The average
  245.  temperature in the winter in montreal is -15C (5F) although this winter has
  246.  been pretty warm to date (-10C average). In the spring (eg.easter), it's
  247.  hot enough outside to start biking, say about 10degrees C to 15C (50F -
  248.  60F). (The girls start wearing mini-shorts as soon as the snow has all
  249.  melted, right before easter, what a coincidence!..). The first language is
  250.  french, although most people speak english too nowadays (look at me). Of
  251.  course, I can go on and on but..
  252.  
  253.  On with the real questions..
  254.  
  255.  Q - How can I get road maps to get to the party be car?
  256.  A - When you buy your tickets, we send you a map along with the tickets if
  257.      you request it.(see next question).
  258.  
  259.  Q - How do I buy tickets? reserve my space on the site &/or sleeping room?
  260.  A - This is the address you should write to for tickets.
  261.  
  262.           NAID / APRAXIA
  263.           College Edouard-Montpetit
  264.           945, chemin de Chambly
  265.           Longueuil (Qubec)
  266.           J4H 3M6
  267.  
  268.      Include in your enveloppe:
  269.      - a check for 5$ (per person) if you are staying one day only.
  270.      - a check for 7$ (per person) if you are staying both days.
  271.      - add one dollar if you want maps (shipping&handling)
  272.      - a letter with the names of the people comming, the number of tickets,
  273.      if you would like to reserve sleeping quarters, a table on the site,etc.
  274.  
  275.      Check payable to: NAID/APRAXIA - College Edouard-Montpetit
  276.      Money is in canadian funds (equals about 5-6$ US). All donations
  277.      accepted. Keep in mind that this is a non-profit organization, and all
  278.      donations will be put to good use to make the party better for everyone.
  279.  
  280.  Q - What can you tell me about the sleeping quarters?
  281.  A - People will be staying in classrooms. A group can request to have their
  282.      own room (specify in letter for tickets). A room can accomodate 20
  283.      people comfortably. Each classroom can be locked using a key which is
  284.      available following a 20$ deposit. The key is given to the "leader" of
  285.      a group. One key per classroom. Electricity is available in every room,
  286.      and bathrooms aren't far away.
  287.  
  288.  Q - Can my group and I have a table on the site?
  289.  A - -ALL- groups will have a place on the site. Don't forget to request it
  290.      in the letter sent for tickets. If possible, mention the number of
  291.      computers you are bringing along, or that you need (though there is no
  292.      guarantee you will get a computer if you don't bring your own).
  293.      Reserving space in advance helps alot, so don't hesitate to send for
  294.      tickets today.
  295.  
  296.  Q - Will there be any trouble finding a parking space near the party-place?
  297.  A - The party being in a school (and a big one at that), lots of parking
  298.      space is available (about 2000cars).Oh, and it's free too :) .
  299.  
  300.  Q - Can we arrive on friday and leave on monday?
  301.  A - We are aware that some people/groups have to arrive early, either to
  302.      get their computers installed or because their plane/train/bus can only
  303.      come on friday/leave on monday. There won't be a problem if you arrive
  304.      earlier.. actually, you might just be lucky enough to help us put
  305.      things up... and clean up aferterwards :)
  306.  
  307.  Q - Will there be food available on the site?
  308.  A - Subway (the famous submarine makers) will have a stand in the school
  309.      and will be selling their subs cheap to feed hungry democoders.. There
  310.      will also be lots of coffee, Tim Horton's donuts and other little
  311.      goodies on sale onsite. Right outside the school, there is a Pizza Hut,
  312.      a Suisse Chalet, a hotdog joint, a Harvey's and a Tim Horton's. Other
  313.      known restaurants are also available not too far away (a few minutes of
  314.      city bus), along with arcades, bars, etc.
  315.  
  316.  Q - Which groups are going to be at the party and will compete?
  317.  A - I am not a PR for all the groups out there, so please stop asking this
  318.      question. Lots of groups have shown interest in the various compos, but
  319.      it's too early to know for sure who is comming or not, who will be
  320.      competing in what, so my final words on this subject are: BE THERE AND
  321.      FIND OUT FOR YOURSELF. Thank you :)
  322.  
  323.  Q - I am not going to NAID, but I want to enter a compo anyways, how can I?
  324.  A - Basic rule number one, to collect a prize you gotta be there. Being
  325.      nice guys =), we've decided to be a bit flexible: regarding the demo
  326.      and intro compo: you can enter it, it will be shown on the big screen,
  327.      but no prize will be awarded (eg. no voting will be done on it).
  328.      Regarding the music and graphics compo: if a person who is absent, but
  329.      his/her GROUP is present on the site, a song/pic can be submitted with
  330.      the GROUP's name on behalf of mr./missus X . Limit one song/pic per
  331.      GROUP, and one song per person. Which means (Yes, I'll draw a picture
  332.      for you) :
  333.  
  334.      Let's take for example the group ELiTE, with these members:
  335.      T00 Cool, Radboy, and Gino.
  336.      T00 cool can enter a song and/or a pic in the respective compos
  337.      Radboy can do the same
  338.      Gino too.
  339.      Afterwards, t00 cool, radboy and gino all enter either compo as "ELITE"
  340.      and run away with the first prize in all compos..
  341.  
  342.  Q - Frankly, why does the NAID invitation intro suck ?
  343.  A - We are also disapointed about the intro. First off, it was supposed to
  344.      be finished months ago, and yes, the coding isn't incredible.
  345.  
  346.      When NAID started in August, we were all demo *lovers*, and not some
  347.      kind of world-famous demo group organzing a demo party  (oh, which
  348.      reminds me of the question:
  349.  
  350.      Q - Why doesn't the "NAID / The Apraxia factor" team have a group name?
  351.      A - It's because we havn't DONE anything yet. ;> ).
  352.      ...
  353.      The people whose names are mentioned in the info-file were "picked up"
  354.      along the way from our computer science courses. We were lucky to have
  355.      at least one person with a little bit of demo coding knowledge. Yes, we
  356.      could have had the intro done by a group with more experience, and yes,
  357.      some groups offered there help at the time (thanx to NV and Abstract
  358.      for wanting to help), but we had our little "team" who wanted to help
  359.      too. I personally didn't know any of these people, but the other main
  360.      organizer Khan had discovered that Boggart was really a good coder (and
  361.      mind you, he isn't so bad). So we gave him a chance to do something for
  362.      us. Every bit of code in the intro is his, the best part being the
  363.      flame effect in the NAID font. Unfortunately though, that little effect
  364.      seems to eat up all of the cpu's speed, thus making the rest slooooow.
  365.      The 10k S3M player is also his, but a little unfixed bug in it didn't
  366.      like the tune I had made for the intro, so at the last minute we had to
  367.      take one of our buddy's existing "ready-in-5minutes" tunes, which
  368.      explains the somewhat "crappy" music (Although you gotta admit that
  369.      phone ringing is pretty funny :) ).
  370.  
  371.      At any rate, what is done is done, and from now 'till easter, another
  372.      intro will probably be released... this time not done by us <g>. And
  373.      please remember that although the intro doesn't help NAID's image,
  374.      there is basically ONE thing that'll make this demoparty good or not:
  375.      the ORGANIZING. So 99.999999% (as an intel pentium would put it..) of
  376.      our efforts is put into it. (1/ to make sure we'll have lots of fun and
  377.      2/ to avoid hidden "NAID SUCKS" messages in future demos :> ).
  378.  
  379.    ..stay faithful kids! Send for your tickets today!
  380.    Remember: Be there and die or be nowhere and cry.
  381.  
  382.  Veritech Knight (William Le) - naid@ebsco.com
  383.  
  384.  BTW, I get ALOT of mail, and answer ALL of it, so please be patient in
  385.  waiting for a reply (don't send new mail every day because you think your
  386.  mail didn't get thru!).
  387.  
  388. ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,,
  389.  
  390.  <<Music>>
  391.  
  392. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  393.  
  394. _____Interview with Maelcum
  395.        _    _               _
  396.       / \  / \  ___  _____ | | ____ __      _   _
  397.      /   \/   \/ _ \/ ___ \| |/ __// /   __/ \_/ \  Interview with Maelcum
  398.  ---/  /\__/\  \/ \ \ \_/ /| | /   \ \   \ \/\_/\ \------------------------
  399.     \  \    /  /\_/  \   /_| |\ \___\ \__/ /\   / /     of the Kosmic
  400.      \__\  /__/\___/\_\_____\| \____\\____/\_\ /_/  Free Music Foundation
  401.  
  402.  GD = GraveDigger of uuDW/CoRE ............. digger@freeside.scsd.k12.ny.us
  403.  MA = Maelcum of Kosmic .................... dan@bowker.com
  404.  --------------------------------------------------------------------------
  405.  
  406.  Maelcum is the head man of the Kosmic Free Music Foundation, a group of
  407.  18 composers, 2 artists (who are also musicians), 2 coders (one is also
  408.  a musician), and 2 PR members, totaling 24 people. Maelcum himself has
  409.  written somewhere in the range of 1500-2000 tracks in his lifetime, and he
  410.  currently prefers Renaissance's MultiTracker for composing.
  411.  
  412.  With such a large number of tunes under his belt, Maelcum probably boasts the
  413.  largest personal PC music library. "This will sound like I'm an ego-maniac,"
  414.  he told me, "but I haven't talked to anyone else who's written more than half
  415.  the amount of stuff I've written that I can remember. The only person I can
  416.  remember being anywhere close is Sidewinder. I think he's been tracking a lot
  417.  longer than me though :)"
  418.  
  419.  In 1994, Maelcum released 52 tracks under Kosmic (an average of one a week).
  420.  This makes up a little more than 1/3 of Kosmic's 125 total releases in 1994.
  421.  
  422.  When I first approached Maelcum about being interviewed for DemoNews, I
  423.  asked if he wanted to set up a time to meet on IRC to conduct the interview.
  424.  He then suggested that I mail him a list of questions instead. This sounded
  425.  like the better option, due to the fact that I was unlikely to find time to
  426.  do this anyways, with my finals approaching. I mailed him three sets of
  427.  questions, and in each case, got the responses less than a day later.
  428.  
  429.  Due to the fact that it was already Saturday by the time I got the first
  430.  completed list of questions, and DemoNews comes out on Sundays... plus, the
  431.  interview had not yet been completely formatted and Maelcum doesn't like to
  432.  use capital letters, this interview is actually a week late. I tried to get
  433.  it done in time, but despite Snowman's plea to have it done to avoid another
  434.  small issue of DemoNews, well... here it is, however late it may be.
  435.  --------------------------------------------------------------------------
  436.  
  437.  GD: How old are you, where do you go to school, and what is your major?
  438.  
  439.  MA: I'm 20 years old. I dropped out of Union County College (cheapo state
  440.      school) in 1993. I was studying Communications.
  441.  
  442.  GD: Where are you living? Are you currently employed?
  443.  
  444.  MA: I live with my mother in a small house. I do freelance music and graphics
  445.      work for different companies. Mostly music for video games and graphics
  446.      for different corporate computer companies. I also do consulting, mostly
  447.      to at-home PC users in my area.
  448.  
  449.  GD: Give us a run-down of a typical "Day in the life of Maelcum.."
  450.  
  451.  MA: Wake up anywhere from 6am-6pm (depending on when I last fell asleep),
  452.      watch some tv or go onto the net, eat food, listen to news radio or
  453.      those lame top 40 stations, read email, write some music (never when
  454.      i've just woken up though). Not necessarily in that order! I go through
  455.      phases...
  456.  
  457.  GD: What's been keeping you busy recently?
  458.  
  459.  MA: Right now I'm just sitting around a lot trying to get different things
  460.      organized and keep up with different things that interest me, like the
  461.      Russians slaughtering the Chechen people and the various things going on
  462.      in Congress. if I had some iniative perhaps I might have gone into
  463.      politics.
  464.  
  465.  GD: Tell us about your songwriting... Do you follow a specific pattern when
  466.      composing?
  467.  
  468.  MA: Not really. I mean, subconsciously I'm sure I do, but I don't
  469.      intentionally try to follow any 'rules'. That's one of the things that
  470.      I hate about a lot of music - the really stupid rules. My only rule is
  471.      it has to sound good, or at least interesting. Actually a lot of the
  472.      "melodies", "riffs" or whatever they're all called, I just make up
  473.      randomly. Like I'll just hit some keys on the keyboard to randomly enter
  474.      notes, then go back and mess around with them till I get something
  475.      interesting.
  476.  
  477.  GD: Approximately when did you start composing?
  478.  
  479.  MA: From what I can tell, sometime in late 1991. I think the oldest song
  480.      that I have here (excluding the 1000+ on QIC-80s, some of those might be
  481.      older) is from October 4th, 1991. I couldn't have been composing for more
  482.      than a few weeks at that time.
  483.  
  484.  GD: What made you decide to begin tracking?
  485.  
  486.  MA: I really can't answer that, because I'm not sure. I basically just
  487.      started fooling around with Modedit when v1.0 came out. I'd been doing
  488.      stuff with waveform editors, multitracks and other stuff for about two
  489.      years before that, but i didn't really own any equipment so i couldn't
  490.      do much.
  491.  
  492.  GD: What's the best part about composing?
  493.  
  494.  MA: I dunno, maybe the money and the girls.
  495.  
  496.  GD: How do you know when you've written a good tune?
  497.  
  498.  MA: When i like what i've written. :)
  499.  
  500.  GD: Do you have any background in music theory?
  501.  
  502.  MA: I really don't know much real music stuff, even though my mom was a music
  503.      teacher. I probably know a lot of stuff that I just don't know what terms
  504.      to use for it - that's the downside to not having any clue about the
  505.      theory, I probably am re-inventing the wheel half the time. But I guess
  506.      that's some of the fun.
  507.  
  508.  GD: What kind of sound equipment do you own?
  509.  
  510.  MA: I use a Gravis UltraSound with 16-bit daughtercard and 1mb of ram
  511.      currently. It's hooked up to a Sony 70 watt/channel ProLogic (surround
  512.      sound) receiver which drives two 10 inch speakers left and right, a 6
  513.      inch center channel speaker, and two 7 inch rear channel speakers. All
  514.      my speakers are really old ones, I think the newest ones are probably
  515.      almost as old as I am. I have a few really cheap microphones, a bottom-of
  516.      the line Japanese DJ mixer, and a few really lousy MIDI modules from the
  517.      early to mid 80s. Probably my most expensive single piece of equipment is
  518.      the receiver, which cost $250 :)
  519.  
  520.  GD: Of the 1500-2000 tracks you have composed, do you still have all of them?
  521.  
  522.  MA: I *think* I have most of them. I say think because many of them
  523.      (primarily 4 channel and FastTracker 1 .MODs) are on QIC-80 tapes which
  524.      I have not been able to access for over a year since my tape backup drive
  525.      died. It would be really cool if someone would donate one, and it would
  526.      let me release a lot of material that's never been heard before :)
  527.  
  528.  GD: What software do you use for sampling/tracking, and why? Are there any
  529.      programs that you hate?
  530.  
  531.  MA: Usually I use Goldwave 2.10 (Windows program) to sample stuff in 16-bit,
  532.      edit everything in 16-bit and then resample it down to 8-bit samples and
  533.      load into MMEDIT v1.01b. I just use what works for me. A lot of people
  534.      say MMEDIT sucks compared to Screamtracker but I just can't stand the
  535.      interface of ScreamTracker. I couldn't exactly explain why but it really
  536.      slows me down. I've been thinking about starting to use Fasttracker 2
  537.      though, since I was using Fasttracker 1 before I used mmedit.
  538.  
  539.  GD: From what source do you get the majority of your samples? How many of
  540.      the samples that you use are originals?
  541.  
  542.  MA: I sample 90% or so of my stuff from different CDs. I have the x-static
  543.      goldmine sampling cds, but so many people use those same sounds that I
  544.      don't like to use them a lot unless I totally change them, like
  545.      re-sequence the drum loops, add reverb and flanging, that kind of thing.
  546.      A lot of people think they're great because you don't have to spend hours
  547.      trying to come up with the perfect sound, but I think that a good tracker
  548.      musician has to be able to make their own sounds.
  549.  
  550.  GD: So, you frown on ripping samples?
  551.  
  552.  MA: Ripping samples is fine, I do it quite a bit myself, but if everyone just
  553.      rips, the music will get really dull. Come to think of it, maybe that's
  554.      why so much of it sucks right now.
  555.  
  556.  GD: What's the strangest thing you ever did to create a sound which you
  557.      sampled and used in a song?
  558.  
  559.  MA: I don't know, I try to do a lot of things randomly. I guess maybe the
  560.      samples I made for "Bang A Can" where I smacked the microphone against a
  561.      PC tower case and then edited them to bits in goldwave was pretty
  562.      strange.
  563.  
  564.  GD: There's something I'd never do! Of course, I'd probably end up wrecking
  565.      something in the process.
  566.      What is your favorite tracked music?
  567.  
  568.  MA: I don't really listen to a lot of tracked music that I don't write. I
  569.      think a lot of people listen to too much of it - that's the only reason
  570.      I can possibly see for why amiga-style demo muzak which was popular six
  571.      years ago is still the most written kind of music by pc composers! It's
  572.      really sad I think, a real de-evolution. There are some good composers
  573.      out there though.
  574.  
  575.  GD: Who, then, do you think of as a good composer?
  576.  
  577.  MA: Everyone says Necros to these kinds of questions, and it's certainly
  578.      true. Nec is a great musician. December.s3m was one of the best tracked
  579.      songs i've ever heard. Krystall is also really good, he does just great
  580.      trance songs, those are always really good. There's a lot of people out
  581.      there who do a few great songs, but tons of crap. I'd like to see people
  582.      try to be more consistent in their creativity. Floss is a really creative
  583.      musician - here is a perfect example. The guy is really doing what needs
  584.      to be done - taking some inspiration perhaps from the tired old demo
  585.      muzak and really inventing something that no one else has thought about.
  586.      His stuff is always great.
  587.  
  588.  GD: What's your opinion on the rest of the KFMF composers?
  589.  
  590.  MA: The whole Kosmic group is full of really great musicians - yes, maybe
  591.      I'm biased, but I haven't seen another group which has so many diverse
  592.      and stylish musicians. I think it really is like a "Dream Team" of
  593.      tracker music.
  594.  
  595.  GD: Yes, you are really lucky to have such a wide range of styles.
  596.      What kinds of professionally-recorded music do you prefer?
  597.  
  598.  MA: As far as real music goes, it would take far too long to list it all. I'm
  599.      into lots of techno, ambient, trance, world music - I love lots of middle
  600.      eastern music, it's just so much more interesting than most western music.
  601.      Some groups, I guess would be like Orbital, Front 242, Depeche Mode,
  602.      Erasure, Brian Eno, Aphex Twin, Stone Temple Pilots, De La Soul, A Tribe
  603.      Called Quest, Tim Simenon (Bomb The Bass), The Orb, Bill Nelson, Public
  604.      Image Limited, Negativland, Enya, Moby, Bjork, Renegade Soundwave,
  605.      Primus, Ravi Shankar, Material... I just listen to lots of different
  606.      music. As much as there is crap music out there, there's some great
  607.      stuff too - you just gotta look for it.
  608.      A lot of people might find this funny, but the groups that I grew up on
  609.      were stuff like The Police, Men At Work, Dire Straits, the Pretenders..
  610.      Johnny Cash and U2 are huge influences.
  611.  
  612.  GD: What are some favorite songs of your own?
  613.  
  614.  MA: Well, right now I like a song I wrote called "Calling Heaven" quite a
  615.      lot. It's going to be on the Intelligent Dance Music list's compilation
  616.      CD "Threads". It's really simple, but the simplicity works. Of my past
  617.      KLF releases, some favorites are "That Noise," my remix of Material's
  618.      "Mantra,".. there's just too many. I used to hate everything I had
  619.      written more than 2 weeks ago, but looking back on it all i'm really
  620.      happy with most of it.
  621.  
  622.  GD: Over the years you have been composing, your music has undergone changes
  623.      in style. Can you explain what causes that?
  624.  
  625.  MA: I'm not really sure! I guess the easy answer is that it is because my
  626.      tastes have changed. Like in 1993 - I was totally into rave and
  627.      traditional techno. The prodigy, stuff like that. then I got into a lot
  628.      of IDM type stuff - orbital, black dog productions.. later in 1994 I
  629.      really started to get heavily into ambient music like Irresistable Force
  630.      and other weird stuff. Now i'm kind of coming out of that phase - a lot
  631.      of the stuff on the second FTZ album which i'm writing with IQ of Kosmic
  632.      is back to the hard techno stage. My latest thing though is not really
  633.      any kind of classified music that I know of. It might be 'trip hop' but
  634.      I really haven't heard anything that I knew IS trip-hop, so i'm not sure
  635.      what that is. A lot of slower, heavy groove things with different styles
  636.      of percussion use. It's music to bob your head to. So far 'loend' is
  637.      probably the only thing i've released that demonstrates this new
  638.      direction.
  639.  
  640.  GD: Do you have any goals, such as tracking for a full-blown demo?
  641.  
  642.  MA: I'm working on something like that right now - but that's not really a
  643.      major goal for me. I mean, this sounds cocky or something, but i've
  644.      already worked with people who are like the Steven Spielbergs of the
  645.      video game world on things that put my music in front of an audience of
  646.      40,000 people or more, so I really can't see demos as such a big thing.
  647.      It's the same thing as with music. Perfect test is to put the end result
  648.      on tape. Would you watch most PC demos on videotape? I wouldn't! MTV's
  649.      crap is more interesting! I guess changing the face of PC demos is one
  650.      goal i'd like to pursue. I'm much more interested as a long term goal in
  651.      things like doing music for a motion picture, and getting a lyrics-free
  652.      video on U.S. MTV.
  653.  
  654.  GD: I have to agree, I wouldn't bother watching a PC demo on TV. It would
  655.      just take all the magic out of it. MTV, though, is a different kind of
  656.      media, and like you say, relies heavily on lyrics.
  657.      How and when did KLF come to be?
  658.  
  659.  MA: I started it in either late 1991 or the very beginning of 1992 I think,
  660.      although I might be wrong by a year.. 1992 was basically the year it
  661.      began though. It started as a VGA and Ansi group, but we sucked pretty
  662.      hard at Ansi, so when I got into tracking it gradually became more and
  663.      more of a music group. by 1993 it was nearly all music. the group died
  664.      in spring 1993 but we resurrected it as a music-only group in September
  665.      of 1993. Now it's on it's way back away from music-only :)
  666.  
  667.  GD: About a month ago, a decision was made to change the group's name from
  668.      Kosmic Loader Foundation [KLF] to Kosmic Free Music Foundation [KFMF].
  669.      Is this something you had been thinking about for a while? What made you
  670.      decide to change the name?
  671.  
  672.  MA: Yeah, we had been considering a name change for at least half a year. We
  673.      needed to get away from being confused with both The KLF and Keen Like
  674.      Frogs, and we had started to use "Free Music Foundation" some, so it was
  675.      a pretty logical decision. This lets us put our names on CDs with a lot
  676.      less problem too :)
  677.  
  678.  GD: So you're thinking in terms of an identity crisis and commercially...
  679.      which makes sense... why let others get any credit for your work? :)
  680.      On December 23, "Santro" was released with a track composed by you for
  681.      accompaniment. How much time went into "Santro?"
  682.  
  683.  MA: I don't know exactly how much time went into Santro, because my only
  684.      involvement was writing the music. I wrote the music in two or three
  685.      hours I guess, all in one sitting. I think the whole coding was only
  686.      about the same, and Sophisto's cheezy santa anim can't have taken too
  687.      long :) It was put together really quickly.
  688.  
  689.  GD: You usually write MTM's. Why was the DSM music format used for "Santro"?
  690.  
  691.  MA: Ask GooRoo why DSM was used - I gave him an MTM in the first place :)
  692.      It's probably because we used DSIK for sound.
  693.  
  694.  GD: What do you see in the future of Kosmic?
  695.  
  696.  MA: Hopefully a lot more exposure. We'd like to get the word out to more
  697.      non-hacker people. That's probably going to mean doing less "free"
  698.      music, but we'll always be doing some. I'm really interested in working
  699.      out a kind of 'shareware' music - giving people a way to support
  700.      musicians directly if they like what they're doing. I think most of my
  701.      songs are worth at least $0.25 :)
  702.  
  703.  GD: A quarter? Hmm. You might have some trouble with your shareware music,
  704.      then. :) How do you expect people to react to this "shareware music"
  705.      concept?
  706.  
  707.  MA: While people might say "Oh no! That would suck!" They need to look at
  708.      the other side of it - if we could support ourselves doing this, or at
  709.      least help to support ourselves, we could do a lot more music, and a lot
  710.      better music. Most of us don't even have MIDI gear, and we're already
  711.      making music on a par with most commercial music.
  712.  
  713.  GD: You've been working on a CD project... Any news on that?
  714.  
  715.  MA: The sister of Kosmic, Area 51 Records, will be releasing my first CD
  716.      hopefully right around NAID. My partner Riku Nuottajarvi and I are
  717.      working really hard to get the company off the ground and well
  718.      established, and I think you'll be seeing some crossover between Area 51
  719.      and Kosmic.
  720.  
  721.  GD: In early January 1995, Kosmic's "Egg2: Trancescrambled" MusicDisk was
  722.      released. What are your future musicdisk plans, if any?
  723.  
  724.  MA: There will be another musicdisk or two in 1995, but right now other
  725.      things are the priority.
  726.  
  727.  GD: What experience do you have in writing music for games?
  728.  
  729.  MA: Well, i've written music for several already, and hopefully I'll be
  730.      getting more work in this field this year. I'd like to warn other
  731.      musicians out there that it's not necessarily as great as it sounds. The
  732.      first few were fun but I've had some projects that were really not much
  733.      fun. It's not a good thing to do just for money, as I've learned the hard
  734.      way. I am going to be more selective about what jobs I take in the
  735.      future, to only be involved with things that I can be happy with.
  736.  
  737.  GD: Are you planning to attend and compete in NAID? If so, will you be taking
  738.      the "Kosmic Train" to get there?
  739.  
  740.  MA: I'm hopefully going to attend NAID, although I don't know yet if I will
  741.      compete. I'm not too sure about how i'm going to get there though.
  742.  
  743.  GD: What kind of advice could you give to other musicians out there, who are
  744.      just starting out?
  745.  
  746.  MA: Don't listen to people who dis you and push you down - just keep working
  747.      at it. The best way to improve is to just keep writing lots of music. The
  748.      more you write, the better you'll get. And don't be discouraged if it
  749.      seems to take you a long time - some people just get it faster than
  750.      others. It took me three years to get to where I really feel "good".
  751.      Above all, try hard to be your own person. Individuality and creativity
  752.      is what separates great music from good music. Technical prowess may be
  753.      wonderful, but you're nothing more than a performer if you don't have
  754.      your own style.
  755.  
  756.  GD: We better throw in a Kosmic plug... Where can others find your songs, as
  757.      well as other KFMF releases via FTP, and is there any WWW sites for the
  758.      KFMF?
  759.  
  760.  MA: We have two FTP sites, one in the U.S. and one in Europe. Both of them
  761.      are really big sites but have occasional hardware problems, so if one is
  762.      down, try the other:
  763.  
  764.      US:     ftp.wit.com in /klf/songs/ subdirectories
  765.      Europe: ftp.luth.se in /pub/misc2/kosmic/songs/ subdirectories
  766.  
  767.      We also have WWW sites on both of these machines, in various states of
  768.      disrepair:
  769.  
  770.      US:     http://www.wit.com/~klf/
  771.      Europe: http://ftp.luth.se/pub/misc2/kosmic/www/
  772.  
  773.  
  774.  GD: Thanks for doing this interview! Hope to hear more from you and the rest
  775.      of the Kosmic guys in the future. Anything you'd like to add before we
  776.      close?
  777.  
  778.  MA: Yes. A huge thank you to all the people out there who listen and who have
  779.      really let me know they appreciate the music. You are the reason behind
  780.      the KFMF!
  781.  
  782. ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
  783.  
  784.  <<Code>>
  785.  
  786. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  787.  
  788. _____Optimizing Vector Transformations on a Pentium by Tom Verbeure
  789.  
  790.  About 7 years ago, I sold my Commodore 128 after 2 years programming and
  791.  playing games (in C=64 mode) and bought my first 'big' computer: a 8088
  792.  clone, running at 8 Mhz with a hard disk of 32 MB.
  793.  
  794.  A few months later, I was programming in assembler and trying to get the
  795.  maximum possible out of the processor. It was fun trying to make clever
  796.  combinations of exotic instructions instead of the normal ones, just to win
  797.  a few cycles. Back then, optimizing was a real art and the rules were not
  798.  clear.
  799.  
  800.  Things have changed. Optimizing code on a 486 can be described by a
  801.  few simple rules:
  802.  
  803.    1. try to avoid anything but MOV, ADD and a bunch of other
  804.       core-instructions.
  805.    2. Don't use the result of an instruction as in the next one.
  806.  
  807.  Demo coders might add:
  808.  
  809.    3. Avoid floating point, use fixed point math. It's almost always faster.
  810.  
  811.  One of the only challenges left, is trying to find the best mapping of
  812.  registers to avoid memory variables in a main loop.
  813.  
  814.  Since I bought a Pentium-90 about two months ago (yep, it has the famous
  815.  FDIV bug), things have changed again and optimizing is fun again too: not
  816.  only is the order in which instructions are executed extremely important,
  817.  there's also a major shift in the way calculations are done: under optimal
  818.  conditions, floating point adds are as fast as integer ones (1 cycle) and,
  819.  much more important,  floating point multiplications can be more than 5
  820.  times as fast as their integer brothers!
  821.  
  822.  During the rest of the article, I will show you how I optimized a standard
  823.  vector transformation in floating point. Starting with the compiler
  824.  generated code, ending with a routine that is about 40% faster.
  825.  
  826.   Testing Environment:
  827.  * Pentium 90MHz with 8 mb ram
  828.  * C Compiler: Watcom 10.0a C/C++. 32-bits protected mode.
  829.  * Assembler: Tasm 3.0
  830.  * Dos extender: PMODE/W, public domain dos extender of Tran.
  831.  * Timer: ZenTimer of Michael Abrash, converted to 32-bits, with a
  832.    precision of 1 microsecond.
  833.  
  834.    ZenTimer and PMODE/W are available at Hornet.
  835.  
  836.  Timings were done as follows:
  837.  
  838.  Diskcache disabled, to prevent disk operations during timings. First a dummy
  839.  loop was executed to time all overhead. The dummy loop had exactly the same
  840.  instructions, only the call to XformVect was replaced by XformVectDummy, an
  841.  empty routine in another c-file. (Don't place the dummy routine in the
  842.  C-file with the timing code. Watcom is clever enough to eliminate the dummy
  843.  code completely!) After the dummy loop, the main loop was executed, with
  844.  XformVect. By subtracting the dummy time from the real time, one gets the
  845.  time spend in XformVect.
  846.  
  847.  Results:
  848.  
  849.  I will upload the results and source code to Hornet as soon as possible. I
  850.  hope to have FTP-access on Friday, but no promises...
  851.  
  852.  XFORMVECT:
  853.  
  854.  The caller of XformVect has to give three parameters: a source and
  855.  destination vector and one 3x4 matrix to transform between them. As the
  856.  bottom row of a transformation matrix is mostly [0.0 0.0 0.0 1.0], I
  857.  removed it.
  858.  
  859.  XformVect, written in C, was already in optimized form: every loop was
  860.  completely unrolled, it was just a sequence of 9 muls and 9 adds.
  861.  
  862.  As a worst case test, I compiled XformVect with full debugging mode on,
  863.  without any optimizations. I used wdisasm to convert the resulting .obj
  864.  file into a readable .asm file. The result (M1.ASM) is horrible and takes
  865.  98 cycles to execute (still faster than the best 486 code!). No further
  866.  comments required.
  867.  
  868.  The second and third test were also compiled C code, with full
  869.  optimizations enabled. Both resulted in the same code and would be near
  870.  optimal on a 486. The calculations for the X,Y and Z components are
  871.  identical, so just duplicate the listing below 2 times, update the offsets
  872.  and you get the actual routine (M2.ASM).  Next to the assembler
  873.  instructions, the stack is listed as it is after execution of the
  874.  instruction on the left . The first one being ST(0) and so on...
  875.  
  876.  C code:   D->X=M[0][0]*S->X+M[0][1]*S->Y+M[0][2]*S->Z+M[0][3]
  877.  
  878.      EBX: Source Vector
  879.      EDX: Matrix
  880.      EAX: Destination Vector
  881.                                        ST(0)     ST(1)
  882.  Asm FLD      DWORD PTR [edx+4H]     ; M01
  883.      FMUL     DWORD PTR [ebx+4H]     ; M01*S->Y
  884.      FLD      DWORD PTR [edx]       ; M00       M01*S->Y
  885.      FMUL     DWORD PTR [ebx]        ; M00*S->X  M01*S->Y
  886.      FADDP    st(1)                  ; M00*S->X+M01*S->Y
  887.      FLD      DWORD PTR [edx+8H]     ; M02       M00*S->X+M01*S->Y
  888.      FMUL     DWORD PTR [ebx+8H]     ; M02*S->Z  M00*S->X+M01*S->Y
  889.      FADDP    st(1)                  ; M02*S->Z+M00*S->X+M01*S->Y
  890.      FADD     DWORD PTR [edx+0cH]    ; D->X
  891.      FSTP     DWORD PTR [eax]        ; <empty>
  892.  
  893.  >From now on, S->X will be noted S0 and so on...
  894.  
  895.  This is very straightforward code and easy to understand. For those who
  896.  have never played with floating point assembler: FLD pushes a float on the
  897.  stack. FMUL multiplies its operand with the top of the stack and puts the
  898.  result at the top of the stack, FADDP adds its operand to the top of the
  899.  stack, places the result in the specified element and pops the top of the
  900.  stack. FSTP stores the top of the stack and removes it.
  901.  
  902.  Ok. This code (3 times) takes 58 cycles to execute, resulting in nearly 28
  903.  MFlops at 90MHz. These are workstation-like numbers! At first, it doesn't
  904.  seem a lot can be won by optimizing. However, several bad things happened
  905.  in this code: FADDP is executed immediately after FMUL, causing one extra
  906.  cycle and it is using the same register, causing another extra cycle.
  907.  
  908.         Please note that FLD after FMUL/FADD never adds an extra
  909.         cycle to the FMUL/FADD, because we're not using the arithmetic unit
  910.         or the result of a previous calculation. So, the first 4
  911.         instructions are optimal.
  912.  
  913.  How to avoid the extra cycles? Well, there is an instruction named FXCH
  914.  that switches the top of the stack with its operand. So FXCH ST(2) puts
  915.  ST(0) in ST(2) and vice versa. On a 486, FXCH costs about 3 cycles, so it
  916.  wasn't used very often on that processor. On the Pentium however, it's the
  917.  only floating point instruction that can run in the second pipeline
  918.  parallel to a limited set of other instructions. It's no coincidence that
  919.  this set consists of the most used instructions: FADD, FSUB, FMUL, FLD,
  920.  FCOM, FUCOM, FCHS, FTST, FABS and, most famous of all (except in Australia
  921.  ?), FDIV.
  922.  
  923.  This means that using FXCH after one of these instructions, no cycle
  924.  penalty is generated. It is FREE, use it! This leads us to the first
  925.  handcoded assembler version (M4.ASM). Only the code for one component has
  926.  been modified.
  927.  
  928.          FLD     DWORD PTR [EDX]         ; M00
  929.          FMUL    DWORD PTR [EBX]         ; M00*S0
  930.          FLD     DWORD PTR [EDX+4]       ; M01     M00*S0
  931.          FMUL    DWORD PTR [EBX+4]       ; M01*S1  M00*S0
  932.          FLD     DWORD PTR [EDX+8]       ; M02     M01*S1  M00*S0
  933.          FMUL    DWORD PTR [EBX+8]       ; M02*S2  M01*S1  M00*S0
  934.  ==>     FXCH    ST(2)                   ; M00*S0  M01*S1  M02*S2
  935.          FADDP   ST(1), ST               ; M00*S0+M01*S1   M02*S2
  936.          FADDP   ST(1), ST               ; M00*S0+M01*S1+M02*S2
  937.          FADD    DWORD PTR [EDX+12]      ; D0
  938.          FSTP    DWORD PTR [EAX]
  939.  
  940.  What has changed? After the FMUL, ST(0) is exchanged with ST(2), costing us
  941.  nothing. Next, two already calculated values are added, causing no extra
  942.  cycle to FMUL, because FADDP isn't executed immediately after FMUL and
  943.  FADDP doesn't use a result of FMUL. This code takes 56 cycles, exactly the
  944.  number we expected. Using this 'trick' for the 3 components, results in...
  945.  52 cycles (M5.ASM).
  946.  
  947.  Looking at each component separately won't help us much: there's just
  948.  nothing to move or to load after the first FADDP.
  949.  
  950.  The first FSTP costs 2 cycles and uses the result for the previous
  951.  instruction. That's a shame, because it costs us a cycle. We have 8
  952.  registers in our copro, so, just leave D[0] on stack and group all the
  953.  FSTPs at the end. This is gives us M6.ASM: two FSTP's removed and placed at
  954.  the end of XformVect. The last lines of M6.ASM now look like this:
  955.  
  956.          FADD    DWORD PTR [EDX+44]      ; D2  D1  D0
  957.          FSTP    DWORD PTR [EAX+8]       ; D1  D0
  958.          FSTP    DWORD PTR [EAX+4]       ; D0
  959.          FSTP    DWORD PTR [EAX]
  960.  
  961.  Execution time of M6.ASM is 46 cycles. 6 less than M5.ASM. That's 2 cycles
  962.  for each replaced FSTP ?! Two? Don't ask me why, I'm happy with it. But
  963.  wait! We're doing it again: D[2] is stored immediately after it was
  964.  calculated. Replace the last 4 lines with this (M7.ASM) ...
  965.  
  966.          FADD    DWORD PTR [EDX+44]      ; D2  D1  D0
  967.          FXCH    ST(2)                   ; D0  D1  D2
  968.          FSTP    DWORD PTR [EAX]         ; D1  D2
  969.          FSTP    DWORD PTR [EAX+4]       ; D2
  970.          FSTP    DWORD PTR [EAX+8]
  971.  
  972.  ... and ze rezultz ov ze Belgian Jury are... 43 cycles! I think that the
  973.  trick of moving FSTP to the end of the file also helps for a 486. If
  974.  someone can confirm this, please let me know.
  975.  
  976.  At this point, we have done everything to optimize individual calculations
  977.  for the separate components and it was relatively easy to follow everything
  978.  without writing down a complete stack-trace. We have shaved of 15 cycles
  979.  from the initial 58, which is already a substantial improvement. Looking at
  980.  the code, we can see that there are two conflicts for each component: two
  981.  ADDs are executed after an ADD. If we can remove these conflicts, a 2*3=6
  982.  cycle improvement should be possible. These improvements are not as easy as
  983.  before: a lot of instructions have to be moved to get the wanted speed.
  984.  
  985.  Let us first remove the conflicts in the first component.
  986.  
  987.  The original code looked like this:
  988.  
  989.  1       FADDP   ST(1), ST               ; M00*S0+M01*S1  M02*S2
  990.  2       FADDP   ST(1), ST               ; M00*S0+M01*S1+M02*S2
  991.  3       FADD    DWORD PTR [EDX+12]      ; D0
  992.  
  993.  4       FLD     DWORD PTR [EDX+16]      ; M10 D0
  994.  5       FMUL    DWORD PTR [EBX]         ; M10*S0  D0
  995.  
  996.  Conflicts are at the (2) and (3).
  997.  
  998.  To remove the first conflict, place (4) immediately after (1). Exchange
  999.  M[1][0] with M[0][2]*S[2]. There are no more calculations pending, now
  1000.  execute the FADDP (2). Exchange the result of the add with M[1][0] (hopping
  1001.  back to ST(0)). We can now safely execute (5). Exchange the result with the
  1002.  only remaining number on the stack et voile, we've eliminated the first
  1003.  conflict. Do the same with the second conflict and you get this result
  1004.  (M8.ASM) :
  1005.  
  1006.  1       FADDP   ST(1), ST               ; M00*S0+M01*S1  M02*S2
  1007.  4       FLD     DWORD PTR [EDX+16]      ; M10 M00*S0+M01*S1  M02*S2
  1008.          FXCH    ST(2)                   ; M02*S2  M00*S0+M01*S1  M10
  1009.  
  1010.  2       FADDP   ST(1), ST               ; M00*S0+M01*S1+M02*S2  M10
  1011.          FXCH    ST(1)                   ; M10  M00*S0+M01*S1+M02*S2
  1012.  
  1013.  5       FMUL    DWORD PTR [EBX]         ; M10*S0  M00*S0+M01*S1+M02*S2
  1014.          FXCH    ST(1)                   ; M00*S0+M01*S1+M02*S2  M10*S0
  1015.  
  1016.  3       FADD    DWORD PTR [EDX+12]      ; D0  M10*S0
  1017.          FXCH    ST(1)                   ; M10*S0  D0
  1018.  
  1019.  After dust had fallen back on the ground, one could time that, as expected,
  1020.  everything ran in 41 cycles, 2 cycles less.
  1021.  
  1022.  It is left as an exercise (don't you hate that phrase?) to do the same for
  1023.  the second component.
  1024.  
  1025.  Now let's have a look at the third component. Same problem here, but not
  1026.  the same solution: there isn't anything to load anymore! Let's have a look
  1027.  at it:
  1028.  
  1029.  1       FADDP   ST(1), ST               ; M20*S0+M21*S1  M22*S2  D1  D0
  1030.  2       FADDP   ST(1), ST               ; M20*S0+M21*S1+M22*S2  D1  D0
  1031.  3       FADD    DWORD PTR [EDX+44]      ; D2  D1  D0
  1032.  
  1033.          FXCH    ST(2)                   ; D0  D1  D2
  1034.  4       FSTP    DWORD PTR [EAX]         ; D1  D2
  1035.  5       FSTP    DWORD PTR [EAX+4]       ; D2
  1036.  6       FSTP    DWORD PTR [EAX+8]
  1037.  
  1038.  Well. When there's nothing to load, let's store!
  1039.  
  1040.  After the first add, put A1 on top of the stack with FXCH and store it.
  1041.  This is the result (M9):
  1042.  
  1043.  1       FADDP   ST(1)                   ; M20*S0+M21*S1  D1  D0  M22*S2
  1044.          FXCH    ST(1)                   ; D1 M20*S0+M21*S1  D0  M22*S2
  1045.  5       FSTP    DWORD PTR [EAX+4]       ; M20*S0+M21*S1  D0  M22*S2
  1046.  
  1047.  2       FADDP   ST(2)                   ; D0 M22*S2+M20*S0+M21*S1
  1048.  4       FSTP    DWORD PTR [EAX]         ; M22*S2+M20*S0+M21*S1
  1049.  
  1050.  3       FADD    DWORD PTR [EDX+44]      ; D2
  1051.  6       FSTP    DWORD PTR [EAX+8]       <---- Conflict. Aaaargh.
  1052.  
  1053.  And now for the big disappointment: I've been moving instructions around
  1054.  and tried various combinations, but I can't eliminate the conflict on the
  1055.  last line. If someone can resolve it, please send your solution to DemoNews
  1056.  as soon as possible.
  1057.  
  1058.  As expected, we have saved (only) one cycle during the last step, giving a
  1059.  total running time of 38 cycles. On a 90MHz machine, this gives us almost
  1060.  43 MFlops, or more than 11 000 000 vector transformations/second! These
  1061.  numbers certainly are comparable to lots of workstations.
  1062.  
  1063.  It is very important to notice that this kind of optimization is unlike
  1064.  traditional optimization techniques, used in demos or games: we haven't
  1065.  replaced calculations by tables or removed mults using a special trick. On
  1066.  the contrary: we have added instructions and haven't removed a single one!
  1067.  On a 486, one could suppose there were some RISCy things hidden behind the
  1068.  surface, now, it is so apparent, you just can't ignore it. Make use of it!
  1069.  
  1070.  I wasn't able to time my code on a 486, but as we have added 10 FXCH
  1071.  instructions, I think M9.ASM might be slower than the original, compiler
  1072.  generated code. Moving FSTP to the end should be beneficial for both
  1073.  processors, though.
  1074.  
  1075.  What are the implications of all this:
  1076.  
  1077.  First, when your program is speed-critical and math-intensive, you can't
  1078.  just ignore the 486 and are almost forced to create a separate version for
  1079.  each processor. If you can avoid floating point math but need lots of
  1080.  multiplications, create an integer version for the 486 and a float point
  1081.  version for the Pentium.
  1082.  
  1083.  Secondly, even when you don't hand-optimize your floating point code, the
  1084.  speed-increase can be big. If you do optimize, it can be Very Big.
  1085.  
  1086.  Perhaps the most important implication, is that one might win even more by
  1087.  redesigning the whole algorithm. I have a specific routine of my 3D engine
  1088.  in mind, but I haven't tested it. I will try it in the future. If I was
  1089.  right, I'll write about it.
  1090.  
  1091.  I realize that a lot of people don't have a Pentium yet, and that it will
  1092.  take some time until it becomes the standard machine at demo parties.
  1093.  Nevertheless, I think one has to be ready for a big shift in the way we
  1094.  approach algorithms, code optimization and the use of floating point,
  1095.  especially in demos.
  1096.  
  1097.  -Tom Verbeure / Synergy Design
  1098.  
  1099.  References:
  1100.  * Pentium Processor User's Manual: Volume 3, Architecture and
  1101.    programming Manual, Intel 1994, ISBN 1-55512-223-X
  1102.  * Pentium Optimizations and Numeric Performance, Stephen S. Fried,
  1103.    Dr. Dobb's Journal, January 1995
  1104.  * Zen of Code Optimization, Michael Abrash, Coriolis Group Books 1994,
  1105.    ISBN 1-883577-03-9
  1106.  * Mijn eerste kompjoeter, Annie M.G. Schmidt
  1107.  
  1108.  Starting with the "begin 600" is a uuencoded copy of the source code
  1109.  referred to in this article.
  1110.  
  1111. begin 600 vector_t.zip
  1112. M4$L#!!0  @ ( %J@.QZJ=8:)"@$  ,8+   &    33$N05--W99+B\(P%(7W
  1113. M0O]#E@Y&:$(7,KL98NFBI:$/9T!$^HC@0BR3+OKSI\$9%]-KQJ)5FKO)XGPY
  1114. MO6ERX'[NCE^'E2CJ[2M2Q=/84ZLH&FN"_M19E'N-6.K$O.J*0;A"/R(6$@#B
  1115. M]/T$R K;IRJ\RS[L(XP8XDF$UJWEO&4W6&3-U1L6BB^OYQW%YQJ^_3CN?J/+
  1116. MNS[K^&?-S(%8C3?(NT'JW\&[1]^#-0V!;XSQ=I7UE+Q@60]V%XL![P+NXU$G
  1117. M4S'I90YO^+]?-T[XK:^ES\'(2/,S([9G9(:(N2$BSPW1H,^1CC5'U- <47-S
  1118. M1)^<(_V?E14&!UD><G1QRCV+X'S\*TJ=",WDT3*Q)M]02P,$%  "  @ 9Z [
  1119. M'F/Q*,"<    / ,   8   !-,BY!4TVMD#T+PC 0AN<4^A\R*NG0"P[B)IRA
  1120. M0\40XP=(*;7&302;H3_?+E:K)D/)C??POMP]Q^O]<=N;VI8+2D2.E.!AHY!*
  1121. MK>C)7%HVRXHX(MV(]2X?P/,G_$VZ8R^R1)2DL1.8)HUU]K"Y[X(W_-?6[;[;
  1122. MTKI/;+4<T*IU?\-@M @&:19,!H2U 3X;_J_X>"$\H! >5@CW"NGKU$K'T1-0
  1123. M2P,$%  "  @ =* ['IFB 1S_ 0  &@@   8   !--"Y!4TVUE6UOVC 0QU\[
  1124. M$M_AWF4MT50\-*&BOC"QRZKE2;&S(B&$& G:I%)0""H?O[83J/+0C$[4BHA]
  1125. M=[__70YR?.T/OF\[!D(><1G(Y1(A+^=1V1S?)@[O&!V#CD,_"N"TCD?;][BP
  1126. M]">VYI0(8LU'7"-SP2;BC0#.QB[S!-!'/Z001"/GP0;3]BDS(>+L&U89">>1
  1127. MJL/FMSEO47Z;)[?X<:=+(^&8<4'LGRH70H4>3%:;=/TK669S91\"(Q.X YKL
  1128. M,F74%JHL[B)+_Q[T>:3.?+-/ETD>TS'>5" (?1L\1D*990@/SUFZB??+)(;-
  1129. M<P*KP_*/SK]ZBA&*7S9I#-LLA6D2'V9(QJ^G-S-YJ8CU_JD4\;L4<;TKPNI"
  1130. MW?[L&->;00V0NJJ]9>D2(T.;P(9,@Q.%)3!MY^L/5.)EW!DBLH&J^EWV!5\A
  1131. M5&U(,UYH*WP1Q]L<[UU9\E93Z)XA@,[%NPUTM86]W+/+MB7/XC#3/Y1[A^JW
  1132. MH7@+1%A0_1\*NW<CI^I57V;N? >]:4&UAU :G)JTRUJD!FU5%,X&-6EJ4EOF
  1133. M !=!U;LHGNG]4O#_-P1?KB'XH@W!K0T9% T)F2@-(.;10#F:9JKTZ5D[O+O$
  1134. MZAAZD/]K9NMA#:8:]F8=^922\,=+PI]7DOZ?^UB7JLC%2QIQ#F>6)$/-.G&L
  1135. M""&Y4YM74$L#!!0  @ ( (*@.QYP&=]89 (  *$*   &    338N05--M59;
  1136. MCYI %'X>$__#>;-;2>.,UI@U^X! 3%,5XV#7Q!##"MMMLE8#F/KS.Q? 80'%
  1137. MQ#5$8?@NAS-?\'SK#?J'9@.AF3ZUT%1WV#%YY@L3V] GM-EH-LSQPE[.$4+R
  1138. MU[!GU-'$-]$VIN[HVF9$!7+C6"N' :DUGEHS!\QG>V'"?#F:_#"@9=BFU8(E
  1139. MM;J$&^B4+IFG01\%#323/DHKC:9GHA!],;:HHQL_N05"4@ZM7O?A[E>PC3=\
  1140. M>0B6OH(G,(,HYHMBQ>0K4R\._YS$]8A?T_TQW 82TVR<56"^L V86?J"F0R!
  1141. M>KL O BFW\7ERS&&*-Z'002_P_WQ$/C@Q1"_!1#\]45=K^\^(/_?/O3A$(>P
  1142. M#OR3"XRY6W=<=G#$[OB>0[SD$%^C!%84:O?<%(==*!"*NCD"PV$7U7 99"3"
  1143. M7-8JO9:IRF<XDIA62IRV;RB*OY 'Q#[Y/I0Q$U'.]'S_P*GX06/;4F"W[\=N
  1144. MEY _]@T3_N">>*J*UN*^[ WF+@GT0B!P5DR&+1$EG4Q4/F8)K3H;6,U&3<,S
  1145. ME:2&2I?KV0\4C30E5W4*4<%J5 KT1#FCE^XX5G?\KA+M*H5"0P<R.=B]')\N
  1146. MD4TC27QPC0P1M8OXXKYV^YF\?/XJ;G6:B)JF&ZQ[G8Q?^M*YH9*!HI0&B]02
  1147. M*Z2+J.DJ:)PW%E_)!U'S<7^=]D690JM[,FP?H5%\R$&]I)770+WS6Z_LODQS
  1148. M&,2Y?UEK9L[Y#75<8&MB?!@^W>/3;(C9I&H,$?,'M/C<TCI#/Z4$<D,-Y!.*
  1149. M$,-9O1I2Z-U+&%%ZI0*&:&7 U%^<\9/_4$L#!!0  @ ( (N@.QYFP(-HB@(
  1150. M .,*   &    33<N05--M59;;Z) %'X>$__#>7.[FDUG2@RIZ0,":3:K8AS<
  1151. M-FF(H8*IB8J!,=N?OW-!0 &EB6U(Q>&[G#GS!<\O3>_OVRV$)L;81F/#Y=?H
  1152. M12R,'-,8T7:KW;*>9\Y\BA!2GZ8SH6Y/_B>]A66X1F\QI!*Y<.U7EP.I_3RV
  1153. M)RY8+\[,@NE\./IM0L=T++L#<VH_$&%@4#KGGB9]E#3H6?116?7H\4X68LR>
  1154. M;>H:YA]A@9"20Z^K*-[^#9=L(98'8!NO\ 16F#"Q*%<LL3+V6;S^E-^'XCN-
  1155. M#O$R5)AV*U>!Z<PQ86(;,VXR@,3?AN G,.[#^X'!>L?B*#@L0UA]+C_ 9\ ^
  1156. M0@AW@02S",+->KO>^2R$A$5Q",MHM]JLE0E:;0((_D5Q 'L6PUL8?'J .&_[
  1157. M=N_Q2R"VAPTJ0MX%)$/\3%)82:BK>9D2]J!$*.L*1D;@..RAZRYZ[D*XRUN1
  1158. MWLA4]W(^QY'4M%:"=QDE[ >Y0PB=]:&*F8H*IA\$>T'%=SU^%B5V]W;L;@49
  1159. MG34.$[%Q7^ZJNK6XG_86"Y<4>B$0."LFPY9%R7TNJK990:O/!BYFHYFAEAN2
  1160. MHV&AR\WL=2_7.*;DJDXI*K@8E1(]5<[HE2>.BR=^4XENG<)Y<HBNDH.]B_%Y
  1161. M(&GC21H?W"!#I-A%?.E<'_JYO-I_';<^3:28IN;6VGUN7?G2^4(ENI<K'8-%
  1162. M&HF5TD6*Z2IIY >+K^2#%/-Q>YWN19GSL&F:"MLIM&+_?J%!ZJ67L/V)FJ]"
  1163. M=@73S0QKGNO*/P[9R:^T/;&FXD%QW.!K<OP8/-WBK]V2LTW=&"/G%^B(N:>3
  1164. M0[^E!/*%&L@W%"&'NV8U'*$W+V%(Z94*.**3 8_^\DZEY#]02P,$%  "  @
  1165. ME: ['NMQV_>  @  [ L   8   !-."Y!4TVU5F^+HD <?CU!WV'>=;O*T4P1
  1166. MLK$O3"6.*XW&;H.0\++E#C8*<[D^_CDS:F,SFD(;4C8^S_/[,\_([_O0&)VZ
  1167. M'0!<<^Z N>FGU^R-+LP\RYR1;J?;L:=+;[4  /!?RW.)K[-OK&]MTS?U[80P
  1168. MY-9WUGX*),YT[K@^M-^\I0T7J\GLAP5[EF<[/;@BS@#3 "8AJS2F15X8#>HV
  1169. M>>&A=)+?L43,Y=0AOFG]I"$ X')@_7Z,#[_VNV1+E\?0,=?P%=K[<T(7V8I-
  1170. M5^9A$O^]L/\3^I\</^/=GF.ZG:L*7"P]"[J.N61AWC\B"*)_QSB"IR2&FWUT
  1171. M"2 8P\.F'Z0711P^/TJ(WR7$\SF#R4+:,,AQ*( 20=8M$5(<"D"#*$9!PFF4
  1172. MC4AO%%3DISB<!:V4N.S^@'/R#3^!]%/N@XJ9B?)NAU%THF3TI,-S(O&U.CXM
  1173. M'MP6CT8\>T0UVFBIJL@>PWH=Q(W1MASM-@0*R@U%12J\F(92/!.%204M)M%<
  1174. M4)%2JZ(RJV0=DK8,TRT+LXR0RELWK<C2#PM5Q2G _<((Z$8X(]:=."2>. 53
  1175. M%?!*+4J_=<G=\(:@D9^]NSJ2=9%X "5ZOCLY76E:).[O0R6T*@6IH0;W!0KJ
  1176. M=WJ >=-PP)N"ZCJ<O:JQV$54NZ^#42'/ZZ_B5KL)BVYJ$7K8+_C*5WF+3 Q!
  1177. M*3<6;B0FN0N+[I(TKAN+[O@#B_YXO(Y6*R.U>LC-5H8JZ@^%!O%WXSDYE=1"
  1178. M;K([&*T(6/'<X/'C?5(:5QS77M 'XMR5KK$Y;/SZB$^WPX:\JGF.#7*P1P?
  1179. MWA7Z)2G@%CG@+TB"3;G-<LBA#T]A0LB=#%)$KP#F\=D==\E_4$L#!!0  @ (
  1180. M +&@.QX(Z!)TI (  'T-   &    33DN05--M9=O:^) $,9?K^!WV'=>+^$P
  1181. M:Q"I]$5,@ARGB;CQ*D@0SUCNH*+$E.O'O_V3Q(W979.C%6GM=I[?/+,[DVZ_
  1182. MV:/AN=L!('#F/I@[$7G/GNG"+'2=&>YVNAUON@Q7"P  _^Z& 8Y,]A696\^)
  1183. M'',[P2QR&_GKB 1B?SKW@PAZS^'2@XO59/;=A3TW]/P>7&%_@&@"!^,5R>GB
  1184. M1R:#IH<?>2H3%Y^8$6<Y]7'DN#]H"@ X#JQ?3NGQYV&?;>GR&/K.&CY![W#)
  1185. MZ");\>C*?)>E?][9SQ/Z,SZ]I?L#C^EVKA2X6(8N#'QGR=*\O"80)']/:0+/
  1186. M60HWA^0]AF ,CYM^3-XTXOCV6HGX58GX>LG#ZB##CHLX*X8U09U;$9 X*P8-
  1187. MLHQ*$2)9-J*\45)13^)0GE2)>-__!I?L"WH Y%7=!YDRA_+=WB7)F8JM!Q->
  1188. MLIK>T.EI\>"V>&O(W5N4T8:EJ4*CA$6J]N48"DYIQ2JM\&(:HK@329,*+(9H
  1189. M#I18:E54WBKY#M6.#-$CV^6.K)OVKITPZI<G3$]#IM-/DR6<9?.L5W%9F):B
  1190. M'R[K=I/N.)*UA-"0(DYEINC-@<C0J PQB6)7!HB7@^*KO TR+VM0[?1ZK J-
  1191. M9*-WAV5H49('05[<G7(JV#LSB(09;(>5V/N/,O7SB$9\'LFVRU3R1AB6C<";
  1192. MV-+D5(\FJ@R"BB%U8/=+!"H4558+.R.!54YI4W/Y"=G5!BH?N5J,XH]CG60T
  1193. M!=6>';M\GC0L&>62G2N[M!,/K3E(K N5CF[C#"55;N4Z5PT BK:W;=[VRG)'
  1194. M7)L>LLK]T0^\!?V%>!$F:^QB/'[ZB%>WPV[=J@LVNUG#'KV1]ZZAGV(!M?"
  1195. M/L$$^[>CF8<B],,M3#"^XX!$],K (C_[Q+OD'U!+ P04  ( " #.H#L>7\XV
  1196. M,9,!  !^!   "0   $U!5$U!5$@N0ZU276OB0!1]CN!_N+@O2<RV)L*^6/M4
  1197. M L):%]LMMD5*,%>]D)G S*3$7?K?.Q_5&'!!82?SDG//.??<F?E&?%54.<*-
  1198. M5(+XYFI[V^TT(,O4UD)'8*\>YE?;WC&B:8[9L\P<U\01O+0H14KUM"KNYWX=
  1199. M[0+/K\-=8#C78;?C/:#ZS4GM%NM2,(-Z$_U+64$248"%(2LD(/(M4BYU$T%U
  1200. MMQ->=SOO)>70<O 7Z6P^=3+=Y*_V(ZZ 1M::(9.H?%N-!I&D/UBNG20('$67
  1201. M?!H/1G0S'%&_KST\S_)?::GW>'+_&/]X>YR]I3]G\W2R\&,C_#C,8[E/N%+6
  1202. M[0D%0TZ;]ZK(:0,/9256:*K 4($2&9>&GRE"-Q=,C\8SGQWQ8.K_FND 0PCO
  1203. M4"H#1+ JN53@QG;B/;;G-EV_3F0O_GZ[&$/K@IS!ZV"I=]3H-#& OCD*,.L?
  1204. MDK@M>3Y#DK0E+\>2AC5<NKMI<C^?SAU?GCN^/'=\5N[X5.Z7T[F3RW,GE^=.
  1205. MSLJ='')_G'J!=Q5CN__R#+_L/P%02P,$%  "  @ TZ ['GC40MJY 0  )P0
  1206. M  D   !-051415-4+D.UDUUKVS 4AJ]E\'\0'BERICE.PBZV+H.M:TJAJ4WK
  1207. MCJSDQK/EY#!9#K8<&DK_>RW%B=QT;.QB%P;I.1_O>P[RH&];:/8EBLYO(^_,
  1208. MMII;Q"J)*\'XBD&*-[' >2Q+>, ;5N9,P')3\Q26():VU1^HDC<@$EZG#'^J
  1209. M9 J%M_I\Q#C\/())(5XE-C(KC;IPR00K8W[,G8=QZJV<+FG*=QT<G9FR# 1#
  1210. M7R\OKH(@O+Z;H;%O\)ZA\7O?]U7!IH 4Y3$(HDZN;3TVN[B\CL8C!%3MY*RH
  1211. MA:01)+\J^JW.\ZT^GMH61O-I<#/3BYMG19DW#(6!JD7A</(X]'S:?D_=T.A4
  1212. MZ3;@ELD[ 7*KB\FAC:OCJ.*,K<FPO1GEB:^:38N2 #53NLHV"N\CR%D9"-*6
  1213. MZ3PSQ3Y919 6^\X2J7N3DW!$#Q[H2;A7/C3-LD-7X^;MI UK 9V GG;OZ?^8
  1214. M_2>??[&X+D'(C#@+T<L<&HZ\N0Z^PC]^C^];&1-8"+.9C[C'@>(A3A6:]#*<
  1215. M;!/.*J?SBB@F&2]BZ1HT(.W<_<Z^^A_\(PL+\5)D]Z_F->\*O=0@^OK.2+E_
  1216. MTM(;>@902P$"%  4  ( " !:H#L>JG6&B0H!  #&"P  !@         ! "
  1217. M        33$N05--4$L! A0 %  "  @ 9Z ['F/Q*,"<    / ,   8
  1218. M     0 @    +@$  $TR+D%335!+ 0(4 !0  @ ( '2@.QZ9H@$<_P$  !H(
  1219. M   &          $ (    .X!  !--"Y!4TU02P$"%  4  ( " ""H#L><!G?
  1220. M6&0"  "A"@  !@         ! "     1!   338N05--4$L! A0 %  "  @
  1221. MBZ ['F; @VB* @  XPH   8          0 @    F08  $TW+D%335!+ 0(4
  1222. M !0  @ ( )6@.Q[K<=OW@ (  .P+   &          $ (    $<)  !-."Y!
  1223. M4TU02P$"%  4  ( " "QH#L>".@2=*0"  !]#0  !@         ! "    #K
  1224. M"P  33DN05--4$L! A0 %  "  @ SJ ['E_.-C&3 0  ?@0   D
  1225. M 0 @    LPX  $U!5$U!5$@N0U!+ 0(4 !0  @ ( -.@.QYXU$+:N0$  "<$
  1226. M   )          $ (    &T0  !-051415-4+D-02P4&      D "0#: 0
  1227. &31(
  1228.  
  1229. end
  1230.  
  1231. ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
  1232.  
  1233.  <<Denthor's High School Essays>>
  1234.  
  1235. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  1236.  Hi there. For this article in DemoNews, I decided to break from my normal
  1237.  "humour" section, and present something else. I wrote this essay a few
  1238.  years ago, when I was in Form 4 (Standard 8/Grade 10). I converted it
  1239.  faithfully, with no alterations (though I wanted to make one or two! ;-) It
  1240.  didn't get a very good mark, but hey, what does that prove? ;) I only hope
  1241.  it doesn't destroy my happy-go-lucky reputation :)
  1242.  
  1243. _____The Perfect Body
  1244.  
  1245.  The lady behind the desk was an exxelon. Duke hated her instantly. She was
  1246.  exquisite in every detail. The rounded figure, the full mouth, the blond
  1247.  hair, each of these features made her more warped in his eyes.
  1248.  
  1249.  "Good morning," she said, the silken syllables tinkling into place like
  1250.  cold spring water. His hatred grew even more intense. "May I help you?" she
  1251.  asked, unaware of the disgust written over his face.
  1252.  
  1253.  Go help yourself, he snarled to himself. You traitor to your race, to your
  1254.  heritage, to nature itself. He hated her. "I am here to see Mr. Linard," he
  1255.  said, trying to keep the disgust out of his voice. "I have an appointment."
  1256.  
  1257.  "One moment please," sung the goddess in the chair before him. "I will see
  1258.  if he is in." Duke took a step back, too repulsed to be standing so close
  1259.  to her. "Go right in," she smiled, showing a perfect row of teeth.
  1260.  
  1261.  Duke walked passed the desk, careful not to get too close in case he
  1262.  touched the exquisite, disgusting skin. He opened the office door and
  1263.  walked inside.
  1264.  
  1265.  A normal was sitting at the desk. Duke was astonished, and he jerked back
  1266.  in surprise. Shaking, he closed the door and seated himself on the
  1267.  luxuriant leather recliner in front of the desk.
  1268.  
  1269.  The man behind the desk smiled. He had crooked teeth, stained with
  1270.  nicotine. Duke felt as if he had never seen a more beautiful sight. "I can
  1271.  see that you are surprised that I am not an exxelon," the man grinned. "My
  1272.  name is Samule Linard. I am the president of the Exxelon Corporation. I
  1273.  have been looking forward to our little meeting."
  1274.  
  1275.  Duke, so astonished by the sight of another normal, merely nodded.
  1276.  
  1277.  "I was watching you when you entered the building. It is surprising that
  1278.  you hate the exxelons so. You must realise that they are the future. A
  1279.  future which, I might add, you yourself may become a part."
  1280.  
  1281.  "Plastic bastards!" snarled Duke. "That blond at your desk was probably a
  1282.  hag with no teeth a few months ago. They're all so much plastic dolls. Wind
  1283.  them up and watch them go." He spat on the carpet. "I hate them all."
  1284.  
  1285.  The smile did not waver. "What you are experiencing is only natural. You
  1286.  want to be one of them, but you are also frightened. I am here to help you
  1287.  through this stage and into perfection."
  1288.  
  1289.  "Go psych out someone else, shrink." The words that Duke spoke were however
  1290.  much harder then his tone. He tried to collect himself. "I'm no traitor to
  1291.  my race, not like those wax dummies out there."
  1292.  
  1293.  Linards smile widened. "I see that you have the wrong idea about our
  1294.  operation here. A few years ago, we at Exxelon Corporation realised that
  1295.  with technology as far advanced as it is, disease, tooth decay, old age ...
  1296.  none of it needed to occur. We allow people to become what they want. A
  1297.  small amount of money for a new body. Become young again, change your
  1298.  color, change your face. Perfect bodies for the perfect age. Welcome to
  1299.  Utopia, Duke, no sickness or death anywhere. Every human is the perfect
  1300.  human. And you can be too."
  1301.  
  1302.  "And along the way, people lose their heritage, their individuality." Duke
  1303.  kept his voice steady, but a flicker of uncertainty crossed his eyes.
  1304.  Linard smiled. He knew he had him. "Tell me Duke, when did you last see an
  1305.  act of racialism? Or heard about one? Not for quite a long time, I'm sure.
  1306.  We have destroyed the greatest barrier to peace ever faced by man! Everyone
  1307.  is now, in almost every way, truly equal! Who do you know that plays sport?
  1308.  Why bother, when bulging muscles are just an hour of surgery away? You can
  1309.  become young again, Duke, young and fit. You never have to grow old. You
  1310.  can become truly immortal!"
  1311.  
  1312.  The interview did not continue for much longer then that. Duke left the
  1313.  room, promising to "think about it", with Linard knowing that he would be
  1314.  back. They all came back.
  1315.  
  1316.  He reached over the desk and flipped a switch, and activated the hidden
  1317.  recorder. He paced up and down the room as he spoke. "Report for the
  1318.  Directors meeting next week. Ladies and gentlemen, the time has arrived. We
  1319.  have achieved the last convert. Every single person on the planet, aside of
  1320.  course from the board of directors, is, or is about to be, an exxelon. In
  1321.  approximately one month, people will realise that after a while, their
  1322.  perfect bodies will begin to decay. And the only way to maintain eternal
  1323.  youth, is to come back to us for more surgery.
  1324.  
  1325.  The members of the board will surely recognise that, in addition to
  1326.  becoming the richest people on the planet, they will also be the most
  1327.  powerful. Anyone who does not cooperate will be allowed to grow old and
  1328.  die, and the fact that all the exxelons have been sterilised ensures that
  1329.  there will be no unconverted, rebellious youth to contend with. The
  1330.  directors of course will not have these restrictions when they are
  1331.  converted. Fellow directors, we have complete control of the planet Earth.
  1332.  This is the true Utopia, and we are it's collective Gods. We shall rule
  1333.  supreme. Forever."
  1334.  
  1335.  - Denthor    denthor@beastie.cs.und.ac.za
  1336.  
  1337. ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
  1338.  
  1339.  <<Rumors>>
  1340.  
  1341. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  1342.  
  1343. - Musicman left epinicon
  1344. - Necros won't be at NAID
  1345. - Zer0 wastes too much time with MUD's
  1346. - Quarex has been averaging 4 glasses of milk a day since age 4.
  1347.  
  1348. ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
  1349.  
  1350.  <<Back Issues>>
  1351.  
  1352. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  1353.  
  1354. _____How to Get 'em
  1355.  
  1356.  After reading this issue of DemoNews, you may be wondering how you can get
  1357.  previous ones.  Well fear not!  There are two different ways to do so:
  1358.  
  1359.  1: FTP to hornet.eng.ufl.edu and go to /pub/msdos/demos/news/OLD_NEWS and
  1360.     start downloading anything you see.
  1361.  
  1362.  2: Now you can request back issues of DemoNews via e-mail.  Start a letter
  1363.     to listserver@oliver.sun.ac.za (any subject line) and in the body of the
  1364.     letter include "get demuan-list <index>" where INDEX refers to the
  1365.     index number of the issue.
  1366.  
  1367.     For example:  get demuan-list 43
  1368.  
  1369.     This would retrieve DemoNews #76 (part 1 of 2).
  1370.  
  1371.     For more recent issues that are split into multiple parts, you must send
  1372.     an individual request for each index number.
  1373.  
  1374. _____Descriptions
  1375.  
  1376. Issue  Index  Date      Size    Description
  1377. -----  -----  --------  ------  ----------------------------------------------
  1378.   76   43,44  12/25/94   92589  Interview with EMF, DemoNews Readers Write,
  1379.                                 Kimba's Life Story, X-Mas in the Demo Scene,
  1380.                                 CORE, Demo & Music Database, Interview with
  1381.                                 Purple Motion/Future Crew, Interview with
  1382.                                 Krystall/Astek, Common Sense ][ by Perisoft,
  1383.                                 Its X-Mas in Africa, Interview with Maxwood
  1384.                                 of Majic 12, Assembly Part ][, Common Sense
  1385.                                 Response by Stony.
  1386.  
  1387.   77   45,46  01/01/95  101100  Chart History, Snowman Near-Disaster, Son of
  1388.                                 Snowman, The Party 1994, Making Waves, Using
  1389.                                 Assembly Part 2.
  1390.  
  1391.   78   47-49  01/08/95  111185  The Party 1994: Results and Reviews, Report
  1392.                                 by Stony and Friends, What happened to PC-
  1393.                                 Demo competition.  Editorial: TP94 = ASM94
  1394.                                 part 2.  Egg2: Trancescrambled Review, More
  1395.                                 on Fast Tracker 2.03.  General Rambling by
  1396.                                 Denthor.
  1397.  
  1398.   79   51     01/15/95   41832  A Day in the Life of Snowman, Ambient Sample
  1399.                                 CD 1, Where's the Sound Blaster, TP94
  1400.                                 Graphics review.
  1401.  
  1402.   80   55     01/22/95   27028  DemoNews/HTML, Traffic Jam, CodeThink(School);
  1403.                                 The Solo Sample CD
  1404.  
  1405.   81   58,59  01/29/95   53434  NAID Survival Guide, General Protection
  1406.                                 Relationships, Ctrl-Alt-Delete, Now Its a
  1407.                                 Game!, Assembly Part 3 (It ain't no party),
  1408.                                 BSP Trees
  1409.  
  1410. ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
  1411.  
  1412.  <<Advertisements>>
  1413.  
  1414. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  1415.  
  1416. _____Mind Side Out // Intro for : cd_demo1.zip
  1417.  
  1418.  If you're looking for a fresh, new band to check out, I highly suggest
  1419.  checking out MSO.  I happened upon this band by chance, after reading an
  1420.  advertisement on the wall of a local record shop.  I found their internet
  1421.  address and talked with one of the members, and decided to give them a try.
  1422.  I'm glad I did.  Anyhow, here's a review of the Phoenix band's first and
  1423.  only cd, Synergy.
  1424.  
  1425.  Synergy is a compilation of a Phoenix synthpop bands three cassettes. >From
  1426.  my understanding, it was completely done by the band themselves. The album
  1427.  chonricles the band's past four years, where they've been and where they
  1428.  are going.  The album is split into three 'phases.'  Phase 3 starts off the
  1429.  album, with their most recent material.  It opens with a wonderful track
  1430.  called 'Sacrifices.'  The intro to the song immediately reminded me of Red
  1431.  Flag.  Very well written song, kept up the synthpoppy programming, but with
  1432.  an industrial flare.  The other tracks on this phase keep up this feel,
  1433.  some a little harder, some not so hard.  At times, Roman Chance's vocals
  1434.  sound almost a bit like Michael Hutchance of INXS.  You sit there listening
  1435.  to the song, trying to get over the fact that he can sound almost exactly
  1436.  like him.  One of the best and most memorable tracks from the Phase, is
  1437.  Twist (blood mix).  No, its not an NIN cover of the pre-ring finger track.
  1438.  Its an original song, with a very catchy sound.  Twist, also appears in
  1439.  different mixes in the other two stages, but the stage three mix is the
  1440.  best, IMHO.  Phase 3 ends with the track 'money' which askes the question,
  1441.  "what's gonna happen to us when the money goes?"  Very playful programming
  1442.  on this track.
  1443.  
  1444.  Phase two opens up with a kinda Cause & Effect-ish type of track.  Good
  1445.  steady beat, great programming and awesome vocals.  No Michael Hutchance on
  1446.  this track.  The most memorable track in this phase, aside from the catchy
  1447.  opening track, 'can't tell' has to be 'mariana diving.'  Nice, calm,
  1448.  relaxing beat and programming.  It opens with an beach sample, with the
  1449.  waves coming onto shore.  The song creates a different kind of mood from
  1450.  the other tracks, not as energetic, a sort of laid back mood. Most of the
  1451.  tracks on this phase aren't as hard as phase three.  Mostly reminiscent of
  1452.  a combination of Red Flag and Cause & Effect, if I had to think of someone
  1453.  they sounded like.  They in no way copy either band's sounds and nicely
  1454.  develope a sound, all their own.  Another song that touched me personally
  1455.  on this phase was the 14th track, called 'more.'  A lyrically rich song,
  1456.  one definately worth a listen.
  1457.  
  1458.  Phase one ends the cd compilation with tracks 16 through 20.  The
  1459.  programming and sound quality on these tracks isn't quite as complex as the
  1460.  other two phases, but that's not to say that these tracks are bad. In fact,
  1461.  most of them are really good.  These tracks reminded me a lot of early
  1462.  Depeche Mode stuff, but with a modern drum machine.  Real playful sounds,
  1463.  intense programming, and unlike early dm stuff, intense lyrics. One of my
  1464.  favorite tracks on this album is in this phase.  'spirits of jealousy's'
  1465.  lyrics hit home for me.  Perhaps thats why I liked it so much.  This track
  1466.  also features a female back up vocalist, who actually doesn't ruin the
  1467.  track unlike most back up vocalists.
  1468.  
  1469.  Overall, a very decent effort by an unsigned band.  They are in the process
  1470.  of putting up a home page, I will annouce it here (if they don't
  1471.  themselves) when its up.  Or, you can always look at
  1472.  http://mcmuse.mc.maricopa.edu/~xymox/ to see if its there, and my other
  1473.  links.
  1474.  
  1475.  Check out the demo: cd_demo1 if you would like a sample.
  1476.  
  1477.  If you are interested in the band, I can give you information on how to get
  1478.  a hold of their cd.
  1479.  
  1480.  Email me at: xymox@primenet.com or Mind Side Out at:
  1481.    mndlink@primenet.com  /  Enjoy the demo!
  1482.  
  1483. _____Help Me!
  1484.  
  1485.  Hi mod fellows!!   I have a big question for you . Would you answer me? I
  1486.  hope so :)   Well , I am looking for spanish techno mod's, specially if
  1487.  they are made in Valencia, if you have any idea please contact me
  1488.  PLEASEEEEEE!!!!!!!
  1489.  
  1490.  There is a song I had heard that it's really good, it's call "Poem without
  1491.  words" is a really cool techno song that I heard last summer in Spain, is
  1492.  anyone knows if is available in mod format please let me know! :)
  1493.  
  1494.  Thanks!
  1495.  
  1496.  Jose Luis Torres R.  e@mail: treboll@a.cs.okstate.edu
  1497.  
  1498.  Wait for my new release of my own techno mix is gonna be one of the best
  1499.  you had ever seen, it's a mix based on the best songs that last summer were
  1500.  heared in Spain, if you know what I am talking about wait for my mod file
  1501.  and you'll see.
  1502.  
  1503. ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
  1504.  
  1505.  <<Closing Comments>>
  1506.  
  1507. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  1508.  
  1509.  I've been watching a lot of David Letterman lately.  That show has inspired
  1510.  this week's Top 10 list for DemoNews:
  1511.  
  1512.  Top 10 Mistakes of Beginning Assembly Language Coders:
  1513.  
  1514.  9. Using ANSI standards to make sure code is portable to different platforms
  1515.  8. XOR AX,0 used to clear out registers
  1516.  7. Look ma', no stack!
  1517.  6. "What does that 'H' after all the numbers mean?"
  1518.  5. "PUSH and POP?  Isn't that by Nine Inch Nails?"
  1519.  4. INT 2H graphics mode
  1520.  3. Storing sin and cos tables at address 0000:0001H for easy access
  1521.  2. "I do not need sleep, I can code Assembler"
  1522.  1. "Comments are sissy"
  1523.  0. One word: "MASM"
  1524.  
  1525.  See you in CyberSpace,
  1526.  
  1527.                         -Christopher G. Mann (Snowman)-
  1528.                             r3cgm@dax.cc.uakron.edu
  1529.  
  1530. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,End.of.DemoNews.082.
  1531.  
  1532.